package Java8实战._2_Stream_使用流._7_构建流;

import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.stream.Stream;

public class _3_由文件生成流 {

    public static void main(String[] args) {
        long uniqueWords = 0;
        String fileDir = "src/test/java/Java8实战._2_Stream_使用流/_7_构建流/data.txt";

        //Files.lines得到一个流
        //其中每个元素都是给定文件中的一行
        try(
                Stream<String> lines = Files.lines(Paths.get(fileDir),Charset.defaultCharset())
        ){

            uniqueWords = lines.flatMap(line -> Arrays.stream(line.split(" ")))
                                .distinct()
                                .count();

//            uniqueWords = lines.map(line -> line.split(" "))
//                    .flatMap(Arrays::stream)
//                    .distinct()
//                    .count();

//            uniqueWords = lines.flatMap(
//                                            line -> {
//                                                    System.out.println("line1：" + line);
//                                                    Stream<String> streams = Arrays.stream(
//                                                            line.split(" ")//将行拆分成单词
//                                                        );
//                                                    System.out.println("line2：" + line);
//                                                    return streams;
//                                                }
//                                        )//使用flatMap产生一个扁平的单词流，而不是每一行生成一个单词流
//                                .distinct()
//                                .count();
//
//        }



        }
        catch (IOException e){
            e.printStackTrace();
        }

        System.out.println(uniqueWords);
    }


}



